﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.OleDb;
using System.Text.RegularExpressions;

public partial class Admin_Khach_Hang : System.Web.UI.Page
{
    DataProvider duLieu = new DataProvider();
    ListBox listBox = new ListBox();

    protected void Page_Init(object sender, EventArgs e)
	{
		int i = 0;
		string dulieu = "";

		//==== Make Ngày ====

		for (i = 1; i <= 31; i++) {
			dulieu = "";
			if (i < 10) {
				dulieu = "0" + i;
			} else {
				dulieu = i.ToString();
			}
			ngaysinh.Items.Add(dulieu);
		}
		ngaysinh.SelectedIndex = 0;

		//==== Make Tháng ====

		for (i = 1; i <= 12; i++) {
			dulieu = "";
			if (i < 10) {
				dulieu = "0" + i;
			} else {
				dulieu = i.ToString();
			}
			thangsinh.Items.Add(dulieu);
		}
		thangsinh.SelectedIndex = 0;

		//==== Make Năm ====

		for (i = (DateTime.Now.Year - 100); i <= DateTime.Now.Year; i++) {
			dulieu = "";
			if (i < 10) {
				dulieu = "0" + i;
			} else {
				dulieu = i.ToString();
			}
			namsinh.Items.Add(dulieu);
		}
		namsinh.SelectedIndex = namsinh.Items.Count - 1;

	}

    protected void Page_Load(object sender, System.EventArgs e)
    {
        if (!IsPostBack)
        {
            Load_Danh_Muc();
        }
    }

    public void Load_Danh_Muc()
    {
        DataTable bangchude = null;
        bangchude = duLieu.Load_Du_Lieu_Admin_New("select * from khachhang", listBox);
        if (bangchude.Rows.Count != 0)
        {
            gvDuLieu.DataSource = bangchude;
            gvDuLieu.DataBind();
        }
        else
        {
            thongbaotrantrung.Text = "<font color='red'>HIỆN TẠI TRANG WEB CHƯA CÓ KHÁCH HÀNG NÀO</font>";
        }
    }
    protected void gvDuLieu_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        gvDuLieu.PageIndex = e.NewPageIndex;
        Load_Danh_Muc();
    }

    protected void gvDuLieu_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
    {
        gvDuLieu.EditIndex = -1;
        Load_Danh_Muc();
    }

    protected void gvDuLieu_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        DataTable kiemtrahang = new DataTable();

        listBox.Items.Clear();
        duLieu.MakeDuLieu(listBox, gvDuLieu.Rows[e.RowIndex].Cells[0].Text);

        kiemtrahang = duLieu.Load_Du_Lieu_Admin_New("select * from DONDATHANG where makh=?", listBox);
        if (kiemtrahang.Rows.Count != 0)
        {
            thongbaotrantrung.Text = "<font color='red'>Khách Hàng Này Đang Đặt Hàng. Không Thể Xóa Được.</font><hr/>";
            return;
        }

        listBox.Items.Clear();
        duLieu.MakeDuLieu(listBox, gvDuLieu.Rows[e.RowIndex].Cells[0].Text);

        duLieu.Luu_Du_Lieu_Admin_New("delete from khachhang where makh=?", listBox);
        Response.Redirect("Khach_Hang.aspx");
    }

    protected void gvDuLieu_RowEditing(object sender, GridViewEditEventArgs e)
    {
        gvDuLieu.EditIndex = e.NewEditIndex;
        Load_Danh_Muc();
    }


    protected void gvDuLieu_RowUpdating(object sender, GridViewUpdateEventArgs e)
	{
		string hovaten = ((TextBox)gvDuLieu.Rows[e.RowIndex].Cells[1].Controls[0]).Text;
		string tendangnhap = ((TextBox)gvDuLieu.Rows[e.RowIndex].Cells[2].Controls[0]).Text;
		string matkhau = ((TextBox)gvDuLieu.Rows[e.RowIndex].Cells[3].Controls[0]).Text;
		string dienthoai = ((TextBox)gvDuLieu.Rows[e.RowIndex].Cells[4].Controls[0]).Text;
		string ngaysinh = ((TextBox)gvDuLieu.Rows[e.RowIndex].Cells[5].FindControl("ngaysinh")).Text;
		string diachi = ((TextBox)gvDuLieu.Rows[e.RowIndex].Cells[6].FindControl("diachi2")).Text;
		string email = ((TextBox)gvDuLieu.Rows[e.RowIndex].Cells[7].Controls[0]).Text;
		bool gioitinh1 = ((CheckBox)gvDuLieu.Rows[e.RowIndex].Cells[8].FindControl("gioitinh")).Checked;
		int gioitinh = 0;
		if (gioitinh1 == true) {
			gioitinh = 1;
		} else {
			gioitinh = 0;
		}

		string stt = gvDuLieu.Rows[e.RowIndex].Cells[0].Text;

		//==== Kiểm Tra Tên Đăng Nhập =====

		if (tendangnhap.Length > 15) {
			thongbaotrantrung.Text = "<font color='red'>Tên Đăng Nhập Phải Nhỏ Hơn 16 Ký Tự.</font><br/><hr color='#008000' size='1'><br/>";
			return;
		}

		//==== Kiểm Tra Email =====
        
		Regex checkemail = new Regex("\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*");
		if (checkemail.IsMatch(email) == false) {
			thongbaotrantrung.Text = "<font color='red'>Bạn nhập sai chuẩn email rồi.</font><br/><hr color='#008000' size='1'>";
			return;
		}

		//==== Kiểm Tra Điện Thoại =====

		if (!duLieu.kiemTraDienThoai(dienthoai)) {
			thongbaotrantrung.Text = "<font color='red'>Bạn nhập sai chuẩn số ĐIỆN THOẠI rồi.</font><br/><hr color='#008000' size='1'><br/>";
			return;
		}
		//dienthoai = dienthoai;

		thongbaotrantrung.Text = "";


		if (!string.IsNullOrEmpty(email) & !string.IsNullOrEmpty(hovaten) & !string.IsNullOrEmpty(tendangnhap) & !string.IsNullOrEmpty(matkhau) & !string.IsNullOrEmpty(dienthoai) & !string.IsNullOrEmpty(ngaysinh) & !string.IsNullOrEmpty(diachi)) {
			listBox.Items.Clear();
            duLieu.MakeDuLieu(listBox, hovaten);
            duLieu.MakeDuLieu(listBox, diachi);
            duLieu.MakeDuLieu(listBox, dienthoai);
            duLieu.MakeDuLieu(listBox, tendangnhap);
            duLieu.MakeDuLieu(listBox, matkhau);
            duLieu.MakeDuLieu(listBox, ngaysinh);
            duLieu.MakeDuLieu(listBox, gioitinh.ToString());
            duLieu.MakeDuLieu(listBox, email);
            duLieu.MakeDuLieu(listBox, stt);

            duLieu.Luu_Du_Lieu_Admin_New("update khachhang set hotenkh=?,diachikh=?,dienthoaikh=?,tendnkh=?,matkhaukh=?,ngaysinh=?,gioitinh=?,emailkh=? where makh=?", listBox);
			gvDuLieu.EditIndex = -1;
			Load_Danh_Muc();
		} else {
            System.Web.HttpContext.Current.Response.Write("<SCRIPT LANGUAGE='JavaScript'>alert('Bạn Chưa Nhập Đầy Đủ Dữ Liệu')</SCRIPT>");
                    
		}
	}


    protected void luudanhmuc_Click(object sender, EventArgs e)
    {
        string tendangnhap1 = tendangnhap.Text;
        string matkhau1 = matkhau.Text;
        string hovaten1 = hovaten.Text;
        string ngaythangnamsinh1 = thangsinh.Text + "/" + ngaysinh.Text + "/" + namsinh.Text;
        string email1 = email.Text;
        string diachi1 = diachi.Text;

        int gioitinh1 = int.Parse(gioitinh.SelectedValue);

        //==== Kiểm Tra Tên Đăng Nhập =====

        if (tendangnhap1.Length > 15)
        {
            showthongbao.Text = "<font color='red'>Tên Đăng Nhập Phải Nhỏ Hơn 16 Ký Tự.</font><br/><hr color='#008000' size='1'><br/>";
            return;
        }

        //==== Kiểm Tra Email =====

        Regex checkemail = new Regex("\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*");
        if (checkemail.IsMatch(email.Text) == false)
        {
            showthongbao.Text = "<font color='red'>Bạn nhập sai chuẩn email rồi.</font><br/><hr color='#008000' size='1'>";
            email.ForeColor = System.Drawing.Color.Red;
            return;
        }
        else
        {
            email.ForeColor = System.Drawing.Color.Black;
        }

        //==== Kiểm Tra Điện Thoại =====

        string dienthoai1 = dienthoai.Text;

		if (!duLieu.kiemTraDienThoai(dienthoai1))
        {
            showthongbao.Text = "<font color='red'>Bạn nhập sai chuẩn số ĐIỆN THOẠI rồi.</font><br/><hr color='#008000' size='1'><br/>";
            dienthoai.ForeColor = System.Drawing.Color.Red;
            return;
        }
        else
        {
            dienthoai.ForeColor = System.Drawing.Color.Black;
        }
       // dienthoai1 = Conversion.Val(dienthoai1);

        //==== Kiểm Tra Dữ Liệu =====


        if (!string.IsNullOrEmpty(tendangnhap1) & !string.IsNullOrEmpty(matkhau1) & !string.IsNullOrEmpty(hovaten1) & !string.IsNullOrEmpty(ngaythangnamsinh1) & !string.IsNullOrEmpty(email1) & !string.IsNullOrEmpty(diachi1))
        {
            DataTable bangcheckdangky = new DataTable();

            listBox.Items.Clear();
            duLieu.MakeDuLieu(listBox, tendangnhap1);

            bangcheckdangky = duLieu.Load_Du_Lieu_Admin_New("select tendnkh from khachhang where tendnkh=?", listBox);

            if (bangcheckdangky.Rows.Count != 0)
            {
                showthongbao.Text = "<font color='red'>Tên đăng nhập này đã có người đăng ký rồi.</font><br/><hr color='#008000' size='1'><br/>";
                return;
            }

            listBox.Items.Clear();
            duLieu.MakeDuLieu(listBox, tendangnhap1);
            duLieu.MakeDuLieu(listBox, hovaten1);
            duLieu.MakeDuLieu(listBox, ngaythangnamsinh1);
            duLieu.MakeDuLieu(listBox, gioitinh1.ToString());
            duLieu.MakeDuLieu(listBox, diachi1);
            duLieu.MakeDuLieu(listBox, dienthoai1);
            duLieu.MakeDuLieu(listBox, email1);
            duLieu.MakeDuLieu(listBox, matkhau1);

            if (duLieu.Luu_Du_Lieu_Admin_New("insert into khachhang(tendnkh,hotenkh,ngaysinh,gioitinh,diachikh,dienthoaikh,emailkh,matkhaukh) values(?,?,?,?,?,?,?,?)", listBox) != 0)
            {
                showthongbao.Text = "<font color='red'>Đăng Ký Thành Công</font><br/><hr color='#008000' size='1'><br/><a href='Default.aspx'>Về Trang Chủ</a>";
                Response.Redirect("Khach_Hang.aspx");
            }
            else
            {
                showthongbao.Text = "<font color='red'>Đăng Ký Không Thành Công</font><br/><hr color='#008000' size='1'><br/>";
            }
        }
        else
        {
            showthongbao.Text = "<font color='red'>Bạn chưa nhập đầy đủ dữ liệu</font><br/><hr color='#008000' size='1'><br/>";
        }

    }

    private void Sap_Xep_Du_Lieu(string COT)
    {
        string LenhSql = "select * from khachhang";

        if (!string.IsNullOrEmpty(COT))
        {
            LenhSql = LenhSql + " Order by " + COT;
        }
        gvDuLieu.DataSource = duLieu.Load_Du_Lieu_Admin_New(LenhSql, listBox);
        gvDuLieu.DataBind();
    }

    protected void gvDuLieu_Sorting(object sender, GridViewSortEventArgs e)
    {
        Sap_Xep_Du_Lieu(e.SortExpression);
    }
}